Windows Presentation Foundation

Element objektu

V XAML existuje vícero typů elementů. Mezi tyto typy patří i element objektu. Jedná se o nejčastěji používaný typ elementu. Každý element objektu zastupuje objekt vytvořený podle třídy. Tyto elementy pak dovolují nastavovat vlastnosti objektů pomocí atributů. Nejčastěji se elementy používají pro umístění ovládacích prvků do rozhraní aplikace.

Ukázka elementu objektu s nastavením vlastnosti pomocí atributu
<Button Width="120" Content="Tlačítko 1" Margin="0,5"/>
Button – element objektu zastupuje objekt vytvořený podle třídy Button (tlačítko)
Width – nastavuje vlastnost „šířka tlačítka“
Content – nastavuje vlastnost zodpovědnou za nápis na tlačítku
Margin – nastavuje vlastnost „odsazení tlačítka od okolních objektů“ (přidá nahoře a dole 5 pixelové místo)
V ukázce není nastavena žádná vlastnost pro přesné umístění tlačítka v rozhraní aplikace. Protože tlačítko je umístěnou v layoutu StackPanel. Tento layout řadí ovládací prvky podle toho, jak jsou postupně vytvářeny (viz. Aplikace ElementObjektu).

Atributy (Width, Content, Margin a další) nastavují hodnoty vlastností jako textové řetězce umístěné v uvozovkách. Samotné přiřazení hodnoty se provede pomocí znaku = (rovná se). Hodnoty je, ale nejprve potřeba převést na odpovídající typ. Ve většině případů se o to postará rovnou WPF.

Některé elementy dovolují nastavit hodnotu přímo. Hodnotu je pak možné přidat mezi počáteční a koncovou značku elementu.

Přímý obsah elementu
<Button Width="120" Margin="0,5">
    Tlačítko 2
</Button>
<Button Width…> – počáteční značku elementu
</Button> – koncová značka elementu
Tlačítko 2 – přímý obsah elementu
Přímý obsah nastavuje hodnotu pro vlastnost Content třídy Button . Na Obrázku 1 je zobrazeno tlačítko po přidání ukázkového kódu do layoutu Grid. Výška tlačítka není nijak upravena a na layoutu Grid zabírá maximální velikost.
Tlačítko vytvořené pomocí XAML
Obrázek 1 Tlačítko vytvořené pomocí XAML [zdroj: vlastní]
Použití přímého obsahu typu kolekce u StackPanel
<StackPanel>
     <Button Width="120" Content="Tlačítko 1" Margin="0,5"/>
     <Button Width="120" Margin="0,5">Tlačítko 2
</StackPanel>
Přímý obsah u StackPanel nastavuje hodnotu vlastnosti Children. Tato vlastnost by se jen těžko dala nastavit pomocí atributu. Proto je lepší ji nastavit pomocí přímého obsahu. Vlastnost Children je typu kolekce UIElementCollection. Rozhraní vytvořené pomocí tohoto kódu můžete vidět na Obrázku 2.
Tlačítka uspořádaná pomocí layoutu StackPanel
Obrázek 2 Tlačítka uspořádaná pomocí layoutu StackPanel [zdroj: vlastní]
Přímý obsah elementu Canvas
Obrázek 3 Přímý obsah elementu Canvas [zdroj: vlastní]

Na Obrázku 3 je zobrazena třída (element) Canvas. Vlastnost Children je nastavena jako přímý obsah elementu Canvas . Children je typu UIElemetCollection a to umožňuje vnořovat další elementy odvozené od třídy UIElement. Na Obrázku 3 je uveden příklad s elementem Button a TextBox.

Ukázkové řešení: XAML/ElementObjektu

Ve Windows Forms sice elementy nejsou, ale je možné ovládací prvky vytvářet v kódu-za. Například je možné ovládací prvek vytvořit v konstruktoru třidy Form. A pomocí vlastnosti Controls ho přidat do rozhraní. Windows Forms ovládací prvky nedovolují používat tak bohatý obsah jako je tomu ve WPF. Například nápis na tlačítku ve WPF může být i třeba další layout s dalšími elementy.

Přidání tlačítka ve Windows Forms pomocí C#
Button tlacitko = new Button();
tlacitko.Location = new Point(38, 26);
tlacitko.Size = new Size(75, 23);
tlacitko.Text = "Tlacitko";

this.Controls.Add(tlacitko);
tlacitko – název reference na objekt
Location – určí pozici tlačítka (horní levý roh)
Size – velikost tlačítka
Text – nápis na tlačítku
Controls – kolekce ovládacích prvků pro tento formulář (Form1)
Na Obrázku 4 je zobrazeno okno aplikace z ukázkového kódu.
Tlačítko ve Windows Forms
Obrázek 4 Tlačítko ve Windows Forms [zdroj: vlastní]
Ukázkové řešení: Windows Forms/VytvoreniOvladacihoPrvkuCSharp